#define LEN_FNAME    (256)  // Longest filename (including path)

#define LEN_FUNC     (64)   // Length of function name
#define LEN_DESC     (256)  // Length of function description
#define MAX_ARG      (32)   // Number of arguments to a function
#define   LEN_AQUAL  (32)   // Length of argument qualifier(s) (Eg. static, const)
#define   LEN_ATYPE  (48)   // Length of argument type (Eg. int, struct foo, enum bar)
#define   LEN_ANAME  (48)   // Length of argument name
#define   LEN_ADESC  (192)  // Length of argument description
#define MAX_NOTE     (10)   // Number of notes
#define LEN_NOTE     (256)  // Length of a note
#define MAX_AUTH     (10)   // Number of authors
#define LEN_AUTH     (20)   // Length of an author

typedef
	struct Header {
		char  path[LEN_FNAME];
		char  file[LEN_FNAME];
		int   line;

		char  func[LEN_FUNC];
		char  desc[LEN_DESC];
		int   argc;                           // arg[0] => return value
		char    argQual[MAX_ARG][LEN_AQUAL];  // ...
		char    argType[MAX_ARG][LEN_ATYPE];  // ...
		char    argName[MAX_ARG][LEN_ANAME];  // ...
		char    argDesc[MAX_ARG][LEN_ADESC];  // ...
		int   ncnt;
		char    note[MAX_NOTE][LEN_NOTE];
		int   acnt;
		char    auth[MAX_AUTH][LEN_AUTH];
	}
Header;
